<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>edges_object_model_3d [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_3dobjectmodel.html">3D Object Model</a> / <a href="toc_3dobjectmodel_transformations.html">变换</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">edges_object_model_3d</span><span data-if="c" style="display:none;">T_edges_object_model_3d</span><span data-if="cpp" style="display:none;">EdgesObjectModel3d</span><span data-if="dotnet" style="display:none;">EdgesObjectModel3d</span><span data-if="python" style="display:none;">edges_object_model_3d</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">edges_object_model_3d</span><span data-if="c" style="display:none;">T_edges_object_model_3d</span><span data-if="cpp" style="display:none;">EdgesObjectModel3d</span><span data-if="dotnet" style="display:none;">EdgesObjectModel3d</span><span data-if="python" style="display:none;">edges_object_model_3d</span></code> — Find edges in a 3D object model.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>edges_object_model_3d</b>( :  : <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, <a href="#MinAmplitude"><i>MinAmplitude</i></a>, <a href="#GenParamName"><i>GenParamName</i></a>, <a href="#GenParamValue"><i>GenParamValue</i></a> : <a href="#ObjectModel3DEdges"><i>ObjectModel3DEdges</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_edges_object_model_3d</b>(const Htuple <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const Htuple <a href="#MinAmplitude"><i>MinAmplitude</i></a>, const Htuple <a href="#GenParamName"><i>GenParamName</i></a>, const Htuple <a href="#GenParamValue"><i>GenParamValue</i></a>, Htuple* <a href="#ObjectModel3DEdges"><i>ObjectModel3DEdges</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>EdgesObjectModel3d</b>(const HTuple&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HTuple&amp; <a href="#MinAmplitude"><i>MinAmplitude</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#ObjectModel3DEdges"><i>ObjectModel3DEdges</i></a>)</code></p>
<p>
<code><a href="HObjectModel3D.html">HObjectModel3D</a> <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>EdgesObjectModel3d</b>(const HTuple&amp; <a href="#MinAmplitude"><i>MinAmplitude</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HObjectModel3D.html">HObjectModel3D</a> <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>EdgesObjectModel3d</b>(double <a href="#MinAmplitude"><i>MinAmplitude</i></a>, const HString&amp; <a href="#GenParamName"><i>GenParamName</i></a>, double <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HObjectModel3D.html">HObjectModel3D</a> <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>EdgesObjectModel3d</b>(double <a href="#MinAmplitude"><i>MinAmplitude</i></a>, const char* <a href="#GenParamName"><i>GenParamName</i></a>, double <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HObjectModel3D.html">HObjectModel3D</a> <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>EdgesObjectModel3d</b>(double <a href="#MinAmplitude"><i>MinAmplitude</i></a>, const wchar_t* <a href="#GenParamName"><i>GenParamName</i></a>, double <a href="#GenParamValue"><i>GenParamValue</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>EdgesObjectModel3d</b>(<a href="HTuple.html">HTuple</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, <a href="HTuple.html">HTuple</a> <a href="#MinAmplitude"><i>minAmplitude</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#ObjectModel3DEdges"><i>objectModel3DEdges</i></a>)</code></p>
<p>
<code><a href="HObjectModel3D.html">HObjectModel3D</a> <a href="HObjectModel3D.html">HObjectModel3D</a>.<b>EdgesObjectModel3d</b>(<a href="HTuple.html">HTuple</a> <a href="#MinAmplitude"><i>minAmplitude</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code><a href="HObjectModel3D.html">HObjectModel3D</a> <a href="HObjectModel3D.html">HObjectModel3D</a>.<b>EdgesObjectModel3d</b>(double <a href="#MinAmplitude"><i>minAmplitude</i></a>, string <a href="#GenParamName"><i>genParamName</i></a>, double <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>edges_object_model_3d</b>(<a href="#ObjectModel3D"><i>object_model_3d</i></a>: HHandle, <a href="#MinAmplitude"><i>min_amplitude</i></a>: Union[float, int], <a href="#GenParamName"><i>gen_param_name</i></a>: MaybeSequence[str], <a href="#GenParamValue"><i>gen_param_value</i></a>: MaybeSequence[Union[int, str, float]]) -&gt; HHandle</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">edges_object_model_3d</span><span data-if="c" style="display:none">edges_object_model_3d</span><span data-if="cpp" style="display:none">EdgesObjectModel3d</span><span data-if="com" style="display:none">EdgesObjectModel3d</span><span data-if="dotnet" style="display:none">EdgesObjectModel3d</span><span data-if="python" style="display:none">edges_object_model_3d</span></code> finds 3D edges in the 3D object model
<a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a> and returns them in the 3D object model
<a href="#ObjectModel3DEdges"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3DEdges</span><span data-if="c" style="display:none">ObjectModel3DEdges</span><span data-if="cpp" style="display:none">ObjectModel3DEdges</span><span data-if="com" style="display:none">ObjectModel3DEdges</span><span data-if="dotnet" style="display:none">objectModel3DEdges</span><span data-if="python" style="display:none">object_model_3dedges</span></code></i></a>.
</p>
<p>该算子 supports edge extraction only from 3D object models that
contain a XYZ mapping, such as models that were created with
<a href="xyz_to_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">xyz_to_object_model_3d</span><span data-if="c" style="display:none">xyz_to_object_model_3d</span><span data-if="cpp" style="display:none">XyzToObjectModel3d</span><span data-if="com" style="display:none">XyzToObjectModel3d</span><span data-if="dotnet" style="display:none">XyzToObjectModel3d</span><span data-if="python" style="display:none">xyz_to_object_model_3d</span></code></a> or that were obtained with a sensor that
delivers the mapping.
<a href="#MinAmplitude"><i><code><span data-if="hdevelop" style="display:inline">MinAmplitude</span><span data-if="c" style="display:none">MinAmplitude</span><span data-if="cpp" style="display:none">MinAmplitude</span><span data-if="com" style="display:none">MinAmplitude</span><span data-if="dotnet" style="display:none">minAmplitude</span><span data-if="python" style="display:none">min_amplitude</span></code></i></a> defines the minimum amplitude of a discontinuity in
order to be classified as an edge.
It is given in the same unit as used in <a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a>.
</p>
<p>The extracted edges are a subset of the points of the input object model.
In addition to the coordinates of the edges, the point normal vectors
in <a href="#ObjectModel3DEdges"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3DEdges</span><span data-if="c" style="display:none">ObjectModel3DEdges</span><span data-if="cpp" style="display:none">ObjectModel3DEdges</span><span data-if="com" style="display:none">ObjectModel3DEdges</span><span data-if="dotnet" style="display:none">objectModel3DEdges</span><span data-if="python" style="display:none">object_model_3dedges</span></code></i></a> contain the viewing direction of each
3D edge point from the viewpoint towards the edge point.
Also, the attributes <i><span data-if="hdevelop" style="display:inline">'edge_dir_x'</span><span data-if="c" style="display:none">"edge_dir_x"</span><span data-if="cpp" style="display:none">"edge_dir_x"</span><span data-if="com" style="display:none">"edge_dir_x"</span><span data-if="dotnet" style="display:none">"edge_dir_x"</span><span data-if="python" style="display:none">"edge_dir_x"</span></i>, <i><span data-if="hdevelop" style="display:inline">'edge_dir_y'</span><span data-if="c" style="display:none">"edge_dir_y"</span><span data-if="cpp" style="display:none">"edge_dir_y"</span><span data-if="com" style="display:none">"edge_dir_y"</span><span data-if="dotnet" style="display:none">"edge_dir_y"</span><span data-if="python" style="display:none">"edge_dir_y"</span></i> and
<i><span data-if="hdevelop" style="display:inline">'edge_dir_z'</span><span data-if="c" style="display:none">"edge_dir_z"</span><span data-if="cpp" style="display:none">"edge_dir_z"</span><span data-if="com" style="display:none">"edge_dir_z"</span><span data-if="dotnet" style="display:none">"edge_dir_z"</span><span data-if="python" style="display:none">"edge_dir_z"</span></i> contain a vector that is perpendicular to
the edge direction and to the viewing direction.
The attributes are set such that the 3D object model can be used
for edge-supported surface-based matching in <a href="find_surface_model.html"><code><span data-if="hdevelop" style="display:inline">find_surface_model</span><span data-if="c" style="display:none">find_surface_model</span><span data-if="cpp" style="display:none">FindSurfaceModel</span><span data-if="com" style="display:none">FindSurfaceModel</span><span data-if="dotnet" style="display:none">FindSurfaceModel</span><span data-if="python" style="display:none">find_surface_model</span></code></a>.
</p>
<p>Generic parameters can optionally be used to influence the edge extraction.
If desired, these parameters and their corresponding values can be specified
with <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> and <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a>.
The following values for <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> are possible:
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'max_gap'</span><span data-if="c" style="display:none">"max_gap"</span><span data-if="cpp" style="display:none">"max_gap"</span><span data-if="com" style="display:none">"max_gap"</span><span data-if="dotnet" style="display:none">"max_gap"</span><span data-if="python" style="display:none">"max_gap"</span></i>:</b></dt>
<dd>
<p>

This parameter specifies the maximum gap size in pixels in the
XYZ-images that are closed.
Gaps larger than this value will contain edges at their
boundary, while gaps smaller than this value will not.
This suppresses edges around smaller patches that were not
reconstructed by the sensor as well as edges at the more
distant part of a discontinuity.
For sensors with very large resolutions, the value should be
increased to avoid spurious edges.</p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>30</i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'estimate_viewpose'</span><span data-if="c" style="display:none">"estimate_viewpose"</span><span data-if="cpp" style="display:none">"estimate_viewpose"</span><span data-if="com" style="display:none">"estimate_viewpose"</span><span data-if="dotnet" style="display:none">"estimate_viewpose"</span><span data-if="python" style="display:none">"estimate_viewpose"</span></i>:</b></dt>
<dd>
<p>

This parameter can be used to turn off the automatic viewpose
estimation and set a manual viewpoint. </p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'viewpoint'</span><span data-if="c" style="display:none">"viewpoint"</span><span data-if="cpp" style="display:none">"viewpoint"</span><span data-if="com" style="display:none">"viewpoint"</span><span data-if="dotnet" style="display:none">"viewpoint"</span><span data-if="python" style="display:none">"viewpoint"</span></i>:</b></dt>
<dd>
<p>

This parameter only has an effect when <i><span data-if="hdevelop" style="display:inline">'estimate_viewpose'</span><span data-if="c" style="display:none">"estimate_viewpose"</span><span data-if="cpp" style="display:none">"estimate_viewpose"</span><span data-if="com" style="display:none">"estimate_viewpose"</span><span data-if="dotnet" style="display:none">"estimate_viewpose"</span><span data-if="python" style="display:none">"estimate_viewpose"</span></i>
is set to <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>. It specifies the viewpoint from which
the 3D data is seen.
It is used to determine the viewing directions and edge directions.
It defaults to the origin <i><span data-if="hdevelop" style="display:inline">'0 0 0'</span><span data-if="c" style="display:none">"0 0 0"</span><span data-if="cpp" style="display:none">"0 0 0"</span><span data-if="com" style="display:none">"0 0 0"</span><span data-if="dotnet" style="display:none">"0 0 0"</span><span data-if="python" style="display:none">"0 0 0"</span></i> of the 3D data.
If the projection center is at a different location, for example, if
the 3D object model was transformed with
<a href="rigid_trans_object_model_3d.html"><code><span data-if="hdevelop" style="display:inline">rigid_trans_object_model_3d</span><span data-if="c" style="display:none">rigid_trans_object_model_3d</span><span data-if="cpp" style="display:none">RigidTransObjectModel3d</span><span data-if="com" style="display:none">RigidTransObjectModel3d</span><span data-if="dotnet" style="display:none">RigidTransObjectModel3d</span><span data-if="python" style="display:none">rigid_trans_object_model_3d</span></code></a> or if the 3D sensor performed a
similar transformation, the original viewpoint must be set.
For this, <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a> must contain a string consisting of
the three coordinates (x, y and z) of the viewpoint, separated by spaces.
The viewpoint is defined in the same coordinate frame as
<a href="#ObjectModel3D"><i><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></i></a>.
Note that for use of this parameter, the values in the X-, Y-, and Z-
images obtained from <a href="object_model_3d_to_xyz.html"><code><span data-if="hdevelop" style="display:inline">object_model_3d_to_xyz</span><span data-if="c" style="display:none">object_model_3d_to_xyz</span><span data-if="cpp" style="display:none">ObjectModel3dToXyz</span><span data-if="com" style="display:none">ObjectModel3dToXyz</span><span data-if="dotnet" style="display:none">ObjectModel3dToXyz</span><span data-if="python" style="display:none">object_model_3d_to_xyz</span></code></a> must have increasing
values from left to right, top to bottom, and for object parts further
away from the camera, respectively. </p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'0 0 0'</span><span data-if="c" style="display:none">"0 0 0"</span><span data-if="cpp" style="display:none">"0 0 0"</span><span data-if="com" style="display:none">"0 0 0"</span><span data-if="dotnet" style="display:none">"0 0 0"</span><span data-if="python" style="display:none">"0 0 0"</span></i>.
</p>
</dd>
</dl>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  
    <li>Automatically parallelized on internal data level.</li>
  
</ul>
<p>This operator supports canceling timeouts and interrupts.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="ObjectModel3D" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></b> (input_control)  </span><span>object_model_3d <code>→</code> <span data-if="dotnet" style="display:none"><a href="HObjectModel3D.html">HObjectModel3D</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the 3D object model whose edges should
be computed.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="MinAmplitude" class="parname"><b><code><span data-if="hdevelop" style="display:inline">MinAmplitude</span><span data-if="c" style="display:none">MinAmplitude</span><span data-if="cpp" style="display:none">MinAmplitude</span><span data-if="com" style="display:none">MinAmplitude</span><span data-if="dotnet" style="display:none">minAmplitude</span><span data-if="python" style="display:none">min_amplitude</span></code></b> (input_control)  </span><span>number <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[float, int]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">Edge threshold.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></b> (input_control)  </span><span>string(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Names of the generic parameters.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'estimate_viewpose'</span><span data-if="c" style="display:none">"estimate_viewpose"</span><span data-if="cpp" style="display:none">"estimate_viewpose"</span><span data-if="com" style="display:none">"estimate_viewpose"</span><span data-if="dotnet" style="display:none">"estimate_viewpose"</span><span data-if="python" style="display:none">"estimate_viewpose"</span>, <span data-if="hdevelop" style="display:inline">'max_gap'</span><span data-if="c" style="display:none">"max_gap"</span><span data-if="cpp" style="display:none">"max_gap"</span><span data-if="com" style="display:none">"max_gap"</span><span data-if="dotnet" style="display:none">"max_gap"</span><span data-if="python" style="display:none">"max_gap"</span>, <span data-if="hdevelop" style="display:inline">'viewpoint'</span><span data-if="c" style="display:none">"viewpoint"</span><span data-if="cpp" style="display:none">"viewpoint"</span><span data-if="com" style="display:none">"viewpoint"</span><span data-if="dotnet" style="display:none">"viewpoint"</span><span data-if="python" style="display:none">"viewpoint"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamValue" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></b> (input_control)  </span><span>number(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[Union[int, str, float]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer / </span><span data-if="hdevelop" style="display:inline">string)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">string)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong / </span><span data-if="cpp" style="display:none">HString)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong / </span><span data-if="c" style="display:none">char*)</span></span>
</div>
<p class="pardesc">Values of the generic parameters.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span><span data-if="hdevelop" style="display:inline">'0 0 0'</span><span data-if="c" style="display:none">"0 0 0"</span><span data-if="cpp" style="display:none">"0 0 0"</span><span data-if="com" style="display:none">"0 0 0"</span><span data-if="dotnet" style="display:none">"0 0 0"</span><span data-if="python" style="display:none">"0 0 0"</span>, 10, 30, 100, <span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span>, <span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="ObjectModel3DEdges" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ObjectModel3DEdges</span><span data-if="c" style="display:none">ObjectModel3DEdges</span><span data-if="cpp" style="display:none">ObjectModel3DEdges</span><span data-if="com" style="display:none">ObjectModel3DEdges</span><span data-if="dotnet" style="display:none">objectModel3DEdges</span><span data-if="python" style="display:none">object_model_3dedges</span></code></b> (output_control)  </span><span>object_model_3d <code>→</code> <span data-if="dotnet" style="display:none"><a href="HObjectModel3D.html">HObjectModel3D</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">3D object model containing the edges.</p>
</div>
<h2 id="sec_result">结果</h2>
<p><code><span data-if="hdevelop" style="display:inline">edges_object_model_3d</span><span data-if="c" style="display:none">edges_object_model_3d</span><span data-if="cpp" style="display:none">EdgesObjectModel3d</span><span data-if="com" style="display:none">EdgesObjectModel3d</span><span data-if="dotnet" style="display:none">EdgesObjectModel3d</span><span data-if="python" style="display:none">edges_object_model_3d</span></code> returns <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
     if all parameters are
correct. 如有必要，将引发异常。</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="read_object_model_3d.html"><span data-if="hdevelop" style="display:inline">read_object_model_3d</span><span data-if="c" style="display:none">read_object_model_3d</span><span data-if="cpp" style="display:none">ReadObjectModel3d</span><span data-if="com" style="display:none">ReadObjectModel3d</span><span data-if="dotnet" style="display:none">ReadObjectModel3d</span><span data-if="python" style="display:none">read_object_model_3d</span></a></code>, 
<code><a href="xyz_to_object_model_3d.html"><span data-if="hdevelop" style="display:inline">xyz_to_object_model_3d</span><span data-if="c" style="display:none">xyz_to_object_model_3d</span><span data-if="cpp" style="display:none">XyzToObjectModel3d</span><span data-if="com" style="display:none">XyzToObjectModel3d</span><span data-if="dotnet" style="display:none">XyzToObjectModel3d</span><span data-if="python" style="display:none">xyz_to_object_model_3d</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="find_surface_model.html"><span data-if="hdevelop" style="display:inline">find_surface_model</span><span data-if="c" style="display:none">find_surface_model</span><span data-if="cpp" style="display:none">FindSurfaceModel</span><span data-if="com" style="display:none">FindSurfaceModel</span><span data-if="dotnet" style="display:none">FindSurfaceModel</span><span data-if="python" style="display:none">find_surface_model</span></a></code>, 
<code><a href="find_surface_model_image.html"><span data-if="hdevelop" style="display:inline">find_surface_model_image</span><span data-if="c" style="display:none">find_surface_model_image</span><span data-if="cpp" style="display:none">FindSurfaceModelImage</span><span data-if="com" style="display:none">FindSurfaceModelImage</span><span data-if="dotnet" style="display:none">FindSurfaceModelImage</span><span data-if="python" style="display:none">find_surface_model_image</span></a></code>, 
<code><a href="refine_surface_model_pose.html"><span data-if="hdevelop" style="display:inline">refine_surface_model_pose</span><span data-if="c" style="display:none">refine_surface_model_pose</span><span data-if="cpp" style="display:none">RefineSurfaceModelPose</span><span data-if="com" style="display:none">RefineSurfaceModelPose</span><span data-if="dotnet" style="display:none">RefineSurfaceModelPose</span><span data-if="python" style="display:none">refine_surface_model_pose</span></a></code>, 
<code><a href="refine_surface_model_pose_image.html"><span data-if="hdevelop" style="display:inline">refine_surface_model_pose_image</span><span data-if="c" style="display:none">refine_surface_model_pose_image</span><span data-if="cpp" style="display:none">RefineSurfaceModelPoseImage</span><span data-if="com" style="display:none">RefineSurfaceModelPoseImage</span><span data-if="dotnet" style="display:none">RefineSurfaceModelPoseImage</span><span data-if="python" style="display:none">refine_surface_model_pose_image</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
3D Metrology</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
